
package persistencias;

import classes.TipoLocacao;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;


public class PTipoLocacao {
    
    private List<TipoLocacao> tiposDeLocacao = new ArrayList<TipoLocacao>();
    int i;
    
    public void adicionar(TipoLocacao tipo){
        if (verificarSeExiste(tipo)==1){
            tiposDeLocacao.add(tipo);
        }
        else System.out.println("Tipo já existente.");
    }
    
    public void excluir(TipoLocacao tipo){
        int j;
        j = consultar(tipo.getTipo());
        if (j != -1) {
             tiposDeLocacao.remove(j);
             System.out.println("Tipo excluído.");
        }
        else System.out.println("Tipo não existente.");
   }
    
    public int verificarSeExiste(TipoLocacao tipo){
        for( i = 0; i < tiposDeLocacao.size(); i++){
            if (tiposDeLocacao.get(i).getTipo().equalsIgnoreCase(tipo.getTipo())){
                return 1;
            }
        }
        return 0;
    }
    
    public int consultar(String tipo){
         for( i = 0; i < tiposDeLocacao.size(); i++){
             if(tiposDeLocacao.get(i).getTipo().equalsIgnoreCase(tipo)){
                 return i;
             }
         }
         return -1;
    }

    public List<TipoLocacao> getTiposDeLocacao() {
        return tiposDeLocacao;
    }
    
        //Manipulação de Arquivos
    
    public void salvarTiposLocacoesArquivo(List<TipoLocacao> tipos) throws IOException {
                FileWriter writer = new FileWriter(new File("tiposDeLocacao.txt"));
                PrintWriter saida = new PrintWriter(writer);
                
                for( i=0; i < tipos.size(); i++) {
                        saida.println(tipos.get(i).getTipo() + "," 
                        + tipos.get(i).getPrecoKm() + ","
                        + tipos.get(i).getTaxaBase());
                }
                writer.close();
                saida.close();
        }
    
    public void carregarTiposLocacoesArquivo(List<TipoLocacao> tipos) throws IOException {
                File arquivo = new File("tiposDeLocacao.txt");
                
                if(!arquivo.exists()) arquivo.createNewFile();
                else {
               
                        FileReader leitura = new FileReader("tiposDeLocacao.txt");
                        BufferedReader leitor = new BufferedReader(leitura);
                                
                        String linha = null;
                        String [] vetor = null;
                
                        while((linha = leitor.readLine()) != null) {
                                vetor = linha.split(",");
                        
                                String tipo = vetor[0];
                                Double precoKm = Double.parseDouble(vetor[1]);
                                Double taxaBase = Double.parseDouble(vetor[2]);
                        
                                TipoLocacao novoTipo = new TipoLocacao(tipo, precoKm, taxaBase);
                
                                adicionar(novoTipo);
                        }
                        leitor.close();
                        leitura.close();
                }
        }
}
